#导入
import numpy as np
import cv2 as cv 
import matplotlib.pyplot as plt

#读入彩色图像
img = cv.imread ('./img/1.jpg',cv.IMREAD_COLOR)
#复制图像数组。对图像img进行修改删除操作，将不会影响到原图像数组img
img2 = img.copy()
#查看图像信息
print('数组维数',img.ndim)
print('图像的高宽及颜色分量数',img.shape)
print('图像数据类型：',img.dtype)

#读取像素值
#注意openCV读取彩色图像的颜色分量顺序为BGR
#读取坐标（100，300）处像素的B分量值
pixb = img[100,300,0]
#显示该像素的B分量值
print('坐标[100，300]处像素的B分量值：',pixb)
#读取100，300处的像素BGR值
pixbgr = img[100,300,:]
#显示该像素的BGR值
print('坐标【100，300】处像素的BGR分量',pixbgr)

#改写像素组合
img2[100,300,1] = 200
#在图像中画一条200个像素长度10像素宽的水平红色细线
img2[300:310,200:300,:]=[0,0,255]

nameplate =img2[197:257,390:490,:]
#复制图块到指定位置
#img2[200:260,266:366,:] = nameplate
#显示上述操作结果

plt.figure(figsize=(12,6))
plt.subplot(1,2,1);plt.imshow(img[:,:,::-1])
plt.title('old_villa,Original image');plt.axis('off')
plt.subplot(1,2,2);plt.imshow(img2[:,:,::-1])
plt.title('old_villa,Some pixels value are changed');plt.axis('off')
plt.show()

#查看图像的BGR颜色分量值
#首先将图像颜色分量顺序调整为RGB
imgRGB = cv.cvtColor(img,cv.COLOR_BGR2RGB)
plt.figure(figsize=(16.8));plt.gray()
plt.subplot(2,3,1);plt.imshow(imgRGB[:,:,0],vmin=0,vmax=255)
plt.title('Color component R');plt.axis('off')
plt.subplot(2,3,2);plt.imshow(imgRGB[:,:,1],vmin=0,vmax=255)
plt.title('G');plt.axis('off')
plt.subplot(2,3,3);plt.imshow(imgRGB[:,:,2],vmin=0,vmax=255)
plt.title('B');plt.axis('off')
plt.subplot(2,3,4);plt.imshow(imgR);plt.axis('off')
plt.subplot(2,3,5);plt.imshow(imgG);plt.axis('off')
plt.subplot(2,3,6);plt.imshow(imgB);plt.axis('off')
plt.show()